home *** CD-ROM | disk | FTP | other *** search
- { Programmed by Yaron Kidron using OSS Personal Pascal.
- This program is public domain software! it is not for reselling. }
-
- Program Memorandum_ST; { V 1.01 }
-
- Type Str80 = String[80];
- PL = Array [1..100] Of Str80; { Special places to go }
- CA = Array [1..100] Of Str80; { Cause }
- DA = Array [1..100] Of Str80;
- OB = Array [1..100] Of Str80;
- WH = Array [1..100] Of Str80;
-
- Var Run :Boolean;
- Command,
- yesno,
- dummy :Char;
- Cdate,
- Name :Str80;
- fv :File of text;
- NumDates :1..10;
- Date1,Mes1, { Message and date base }
- Date2,Mes2,
- Date3,Mes3,
- Date4,Mes4,
- Date5,Mes5,
- Date6,Mes6,
- Date7,Mes7,
- Date8,Mes8,
- Date9,Mes9,
- Date10,Mes10 :Str80;
- Place :PL;
- Causes :CA;
- Data :DA;
- Object :OB;
- Where :WH;
- d1,d2,d3,
- d4,d5,d6 :Integer;
-
- {$I Screen.Pas}
-
- Procedure Text;
-
- Begin
- Clrscr;
- Writeln('+-------------------------------------------------+');
- Writeln('| Memorandum ST - V 1.01 - June 1987 |');
- Writeln('| Written By Yaron Kidron in OSS Personal Pascal. |');
- Writeln('|This is public domain software, please distribute|');
- Writeln('|freely. |');
- Writeln('+-------------------------------------------------+');
- Writeln;
- Writeln('Options: Current date:',Cdate);
- Writeln;
- Writeln('D.....Important dates. P......Special places.');
- Writeln('R..........Reset date. I......Important data.');
- Writeln('C........Clear memory. K.....Setting Desktop.');
- Writeln('S.........Save memory. T..............Status.');
- Writeln('L.........Load memory. O...........Load date.');
- Writeln('Q................Quit. H................Help.');
- Writeln;
- Write('Your choice >');
- Readln(command);
- End;
-
- Procedure Reset_Date;
-
- Begin
- Clrscr;
- Writeln('Memorundum ST - V 1.01');
- Writeln('Reset date. Current is ',Cdate);
- Writeln;
- Write('Enter new date [ M/D/Y ] :');
- Readln(Cdate);
- Writeln;
- Write('Save date (Y/N) ? :');
- Readln(yesno);
- if (yesno='y') Or (yesno='Y') Then
- Begin
- Rewrite(fv,'Date.Dat');
- Writeln(fv,Cdate);
- End;
- End;
-
- Procedure Load_Date;
-
- Begin
- Clrscr;
- Writeln('Memorandum ST - V 1.01');
- Writeln('Loading program date.');
- Writeln;
- Write('Please confirm (y/n) ...');
- Readln(yesno);
- If (yesno='y') or (yesno='Y') Then
- Begin
- Writeln('Searching for Date.Dat');
- Reset(fv,'Date.Dat');
- Readln(fv,Cdate);
- End;
- End;
-
- Procedure Imp_Dates;
-
- Type Mes = Array [1..10] Of Str80;
- Dat = Array [1..10] Of Str80;
-
- Var i :1..10;
- Buf :Mes;
- Fer :Dat;
-
- Begin
- Clrscr;
- Writeln('Memorandum ST - V 1.01');
- Writeln('Setting important dates...');
- Writeln;
- Write('How many dates do you want to set (1-10) ? :');
- Readln(Numdates);
- While (Numdates>10) Or (Numdates<1) Do
- Begin
- Writeln('Input overflow. try again.');
- Write('How many dates do you want to set (1-10) ? :');
- Readln(Numdates);
- End;
- Writeln;
- For i:=1 to Numdates Do
- Begin
- Write('Enter date [ M/D/Y ]:');
- Readln(Buf[i]);
- Write(' & Message:');
- Readln(Fer[i]);
- End;
- d1:=numdates*8*(length(buf[1]));
- Date1:=Buf[1];
- Date2:=Buf[2];
- Date3:=Buf[3];
- Date4:=Buf[4];
- Date5:=Buf[5];
- Date6:=Buf[6];
- Date7:=Buf[7];
- Date8:=Buf[8];
- Date9:=Buf[9];
- Date10:=Buf[10];
- Mes1:=Fer[1];
- Mes2:=Fer[2];
- Mes3:=Fer[3];
- Mes4:=Fer[4];
- Mes5:=Fer[5];
- Mes6:=Fer[6];
- Mes7:=Fer[7];
- Mes8:=Fer[8];
- Mes9:=Fer[9];
- Mes10:=Fer[10];
- End;
-
- Procedure Clear_Mem;
-
- Var i :1..100;
-
- Begin
- Date1:=' ';
- Date2:=' ';
- Date3:=' ';
- Date4:=' ';
- Date5:=' ';
- Date6:=' ';
- Date7:=' ';
- Date8:=' ';
- Date9:=' ';
- Date10:=' ';
- mes1:=' ';
- mes2:=' ';
- mes3:=' ';
- mes4:=' ';
- mes5:=' ';
- mes6:=' ';
- mes7:=' ';
- mes8:=' ';
- mes9:=' ';
- mes10:=' ';
- For i:=1 to 100 DO
- Begin
- Place[i]:=' ';
- Causes[i]:=' ';
- Data[i]:=' ';
- Object[i]:=' ';
- Where[i]:=' ';
- End;
- End;
-
- Procedure Check;
-
- Begin
- Writeln;
- If Date1=Cdate Then Begin
- Writeln('Important date! ',Mes1);
- Readln(dummy);
- End;
- If Date2=Cdate Then Begin
- Writeln('Important date! ',Mes2);
- Readln(dummy);
- End;
- If Date3=Cdate Then Begin
- Writeln('Important date! ',Mes3);
- Readln(dummy);
- End;
- If Date4=Cdate Then Begin
- Writeln('Important date! ',Mes4);
- Readln(dummy);
- End;
- If Date5=Cdate Then Begin
- Writeln('Important date! ',Mes5);
- Readln(dummy);
- End;
- If Date6=Cdate Then Begin
- Writeln('Important date! ',Mes6);
- Readln(dummy);
- End;
- If Date7=Cdate Then Begin
- Writeln('Important date! ',Mes7);
- Readln(dummy);
- End;
- If Date8=Cdate Then Begin
- Writeln('Important date! ',Mes8);
- Readln(dummy);
- End;
- If Date9=Cdate Then Begin
- Writeln('Important date! ',Mes9);
- Readln(dummy);
- End;
- If Date10=Cdate Then Begin
- Writeln('Important date! ',Mes10);
- Readln(dummy);
- End;
- End;
-
- Procedure Places;
-
- Var i :1..100;
- Buf :Str80;
-
- Begin
- Clrscr;
- Writeln('Memorandum ST - V 1.01');
- Writeln('Special places to visit.');
- Writeln;
- i:=1;
- Write('Would you like to enter data (y/n) ?:');
- Readln(yesno);
- If (yesno='y') Or (yesno='Y') then
- Repeat
- Write('Enter place ( ''Stop'' to stop ):');
- Readln(Buf);
- If buf<>'Stop' Then Place[i]:=Buf;
- Write('Why? :');
- Readln(Buf);
- If Buf<>'Stop' Then Causes[i]:=Buf;
- i:=i+1;
- If i>99 Then i:=99;
- Until Buf='Stop'
- Else
- Begin
- Clrscr;
- Writeln('Memorandum ST - V 1.01');
- Writeln('Preview data.');
- Writeln;
- Write('Would you like to preview the data (y/n) ?:');
- Readln(yesno);
- If (yesno='y') Or (yesno='Y') Then
- Begin
- Clrscr;
- Writeln('Important places to visit...');
- Repeat
- Writeln(Place[i],' because ',Causes[i]);
- i:=i+1;
- Read(dummy);
- Until Place[i]=' ';
- End;
- End;
- d2:=i*80;
- End;
-
- Procedure Imp_Data;
-
- Var i :1..100;
- Buf :Str80;
-
- Begin
- Clrscr;
- Writeln('Memorandum ST - V 1.01');
- Writeln('Important data.');
- Writeln;
- i:=1;
- Write('Would you like to enter data (y/n) ?:');
- Readln(yesno);
- If (yesno='y') Or (yesno='Y') then
- Writeln('Enter Stop to stop entering data.');
- If (yesno='y') Or (yesno='Y') then
- Repeat
- Write(i,':');
- Readln(Buf);
- If buf<>'Stop' Then DATA[i]:=Buf;
- i:=i+1;
- Until Buf='Stop'
- Else
- Begin
- Clrscr;
- Writeln('Memorandum ST - V 1.01');
- Writeln('Preview data.');
- Writeln;
- Write('Would you like to preview the data (y/n) ?:');
- Readln(yesno);
- If (yesno='y') Or (yesno='Y') Then
- Begin
- Clrscr;
- Writeln('Important information...');
- Repeat
- Writeln(Data[i]);
- i:=i+1;
- If i>99 Then i:=99;
- Read(dummy);
- Until Data[i]=' ';
- End;
- End;
- d3:=i*80;
- End;
-
- Procedure My_Desk;
-
- Var i :1..100;
- Buf :Str80;
- Found :Boolean;
-
- Begin
- Clrscr;
- Writeln('Memorandum ST - 1.01');
- Writeln('Setting up the desktop');
- Writeln;
- Write('Would you like to set your desktop (y/n) ?:');
- Readln(yesno);
- Writeln;
- i:=1;
- If (yesno='y') Or (yesno='Y') Then
- Begin
- Clrscr;
- Writeln('Enter data, Stop to stop.');
- Repeat
- Write('Object:');
- Readln(Buf);
- If buf<>'Stop' Then Object[i]:=buf;
- Write('Where? :');
- Readln(Buf);
- If Buf<>'Stop' Then Where[i]:=Buf;
- i:=i+1;
- If i>99 Then i:=99;
- Until Buf='Stop';
- End;
- d4:=i*80;
- Found:=false;
- Write('Are you looking for something (y/n) ?:');
- Readln(yesno);
- While (yesno='y') or (yesno='Y') Do
- Begin
- Clrscr;
- Writeln('Searching for something...');
- Write('What are you searching for ?:');
- Readln(buf);
- Write('Searching..');
- For i:=1 to 100 Do
- If Object[i]=buf then
- Begin
- Writeln;
- Writeln('Found it! ',buf,' -> ',Where[i]);
- Found:=true;
- End
- Else Write('.');
- If Found=false then
- Begin
- Writeln;
- Writeln('Sorry, can not locate ',buf,' in memory.');
- Found:=true;
- End;
- Write('Are you looking for another thing (y/n) ?:');
- Readln(yesno);
- End;
- End;
-
- Procedure save_Mem;
-
- Var i :1..100;
-
- begin
- Writeln;
- Writeln('Saving memory...');
- Rewrite(fv,'Memory.Dat');
- Writeln(fv,Date1);
- Writeln(fv,mes1);
- Writeln(fv,Date2);
- Writeln(fv,mes2);
- Writeln(fv,Date3);
- Writeln(fv,mes3);
- Writeln(fv,Date4);
- Writeln(fv,mes4);
- Writeln(fv,Date5);
- Writeln(fv,mes5);
- Writeln(fv,Date6);
- Writeln(fv,mes6);
-
-
- Writeln(fv,Date7);
- Writeln(fv,mes7);
- Writeln(fv,Date8);
- Writeln(fv,mes8);
- Writeln(fv,Date9);
- Writeln(fv,mes9);
- Writeln(fv,Date10);
- Writeln(fv,mes10);
- For i:=1 to 100 Do
- begin
- Writeln(fv,Place[i]);
- Writeln(fv,Causes[i]);
- end;
- For i:=1 to 100 Do
- Writeln(fv,Data[i]);
- For i:=1 to 100 Do
- Begin
- Writeln(fv,object[i]);
- Writeln(fv,where[i]);
- End;
- End;
-
- Procedure Status;
-
- Var l :Long_Integer;
-
- Begin
- Clrscr;
- Writeln('+------------------------+');
- Writeln('| Memorandum ST - V 1.01 |');
- Writeln('| Memory status... |');
- Writeln('+------------------------+');
- Writeln;
- l:=(41680-d1-d2-d3-d4);
- Writeln('Total Free space:',l,' bytes.');
- Writeln('Which is about %',((100*l) div 41680),' of memory free.' );
- If (l>40000) Then Writeln('Memory almost empty.');
- If (l<40000) and (l>35000) Then Writeln('Sufficient amount of memory left');
- If (l<35000) and (l>30000) Then Writeln('An OK amount of memory is left.');
- If (l<30000) and (l>25000) Then Writeln('Enough memory for usual usage.');
- If (l<25000) and (l>20000) Then Writeln('Day to day changes in memory.');
- If (l<20000) and (l>15000) Then Writeln('Memory supports only minor changes!');
- If (l<15000) and (l>10000) Then Writeln('Memory almost full!');
- If (l<10000) and (l>5000) Then Writeln('Very small amount of memory left!');
- If (l<5000) Then
- Begin
- Writeln('No more memory left for former processing!!!');
- Save_mem;
- End;
- If object[1]<>' ' Then
- Writeln('Data on setting desktop...');
- If Place[1]<>' ' Then
- Writeln('Data on special places...');
- If data[1]<>' ' Then
- Writeln('Important data in memory...');
- If Date1<>' ' Then
- Writeln('Some important dates in memory...');
- Read(dummy);
- End;
-
- Procedure Load_Mem;
-
- Var i :1..100;
-
- begin
- Writeln;
- Writeln('Loading memory...');
- Write('Please confirm (y/n)...');
- Readln(yesno);
- If (yesno='y') or (yesno='Y') Then
- Begin
- Reset(fv,'Memory.Dat');
- Readln(fv,Date1);
- Readln(fv,Mes1);
- Readln(fv,Date2);
- Readln(fv,Mes2);
- Readln(fv,Date3);
- Readln(fv,Mes3);
- Readln(fv,Date4);
- Readln(fv,Mes4);
- Readln(fv,Date5);
- Readln(fv,Mes5);
- Readln(fv,Date6);
- Readln(fv,Mes6);
- Readln(fv,Date7);
- Readln(fv,Mes7);
- Readln(fv,Date8);
- Readln(fv,Mes8);
- Readln(fv,Date9);
- Readln(fv,Mes9);
- Readln(fv,Date10);
- Readln(fv,Mes10);
- For i:=1 to 100 Do
- Begin
- Readln(fv,Place[i]);
- Readln(fv,Causes[i]);
- End;
- For i:=1 to 100 Do
- Readln(fv,Data[i]);
- For i:=1 to 100 Do
- Begin
- Readln(fv,object[i]);
- Readln(fv,Where[i]);
- End;
- End;
- End;
-
- Procedure Help_Me;
-
- Procedure AFR;
-
- Begin
- Writeln;
- InverseVideo;
- Writeln('Hit << Return >>');
- NormVideo;
- CursOff;
- Readln(dummy);
- Clrscr;
- CursOn;
- End;
-
- Begin
- Clrscr;
- InverseVideo;
- Writeln('Memorandum ST - V 1.01 - Programmed by Yaron Kidron');
- NormVideo;
- writeln;
- Writeln('Intruduction:');
- Writeln('-------------');
- Writeln('This program is a utility in which helps organizing your desktop');
- Writeln('especially if you are using your ST often.');
- Writeln('The program gathers up some useful settings, and it somewhat ');
- Writeln('operates like a database program. You could use Memorandum ST ');
- Writeln('as a simple database, of course.');
- Writeln('The program does not support any mouse or Gem functions. However');
- Writeln('it is very easy to operate due to its menu and yes/no questions');
- Writeln('usage system.');
- Writeln('This is verision 1.01, and it is public domain software. This ');
- Writeln('program is FREE, and it is not for reselling.');
- AFR;
- Writeln('The Menu screen');
- Writeln('---------------');
- Writeln('The menu desplays the main functions of Memorandum, and asks for');
- Writeln('your decision. To the upper right of the menu, you can notice');
- Writeln('the current program date, in which the program operates on, and');
- Writeln('it is totaly different than the desktop date. Therefore you can');
- Writeln('NOT set the date from the desktop. The default is the 6/17/87.');
- Writeln;
- Writeln('Resetting date: type R and hit return. You would be asked to ');
- Writeln('~~~~~~~~~~~~~~~ change the date, and then gived the choice of');
- Writeln(' storing the date to the disk.');
- Writeln;
- Writeln('Important dates: type D and hit return. You would be asked for');
- Writeln('~~~~~~~~~~~~~~~~ the amount of dates that you want to set - up');
- Writeln(' to 10, and enter the date & message.');
- Writeln(' When an important date will match the current');
- Writeln(' program''s date, it will display a message.');
- AFR;
- Writeln('Special Places: type P and hit return. First of all, you would ');
- Writeln('~~~~~~~~~~~~~~~ be given the choice of entering the data. If you');
- Writeln(' do want to enter the data, type y. Enter the ');
- Writeln(' place''s name, and why is it so special.If you');
- Writeln(' choose to quit, type ''Stop'' both on the place');
- Writeln(' and the reason.');
- Writeln(' If you enter any other character for the first');
- Writeln(' question, you will be asked if you will like to');
- Writeln(' preview the data. If you select so, the data ');
- Writeln(' will be displayed on the screen.');
- Writeln;
- Writeln('Important data: type I and hit return. This option acts like a ');
- Writeln('~~~~~~~~~~~~~~~ notepad, or a word-processor. Select either you');
- Writeln(' want to enter the data, and continue on.');
- Writeln(' If you do enter the data, on the left, you will ');
- Writeln(' notice the line numbers.');
- Writeln(' Then, you will be given the option of previewing');
- Writeln(' your information. Type y to do so.');
- AFR;
- Writeln('Desktop places: Did once happen that you went banannas because');
- Writeln('~~~~~~~~~~~~~~~ you forgot where you put a certain object? this');
- Writeln(' option organizes your desktop, and makes life ');
- Writeln(' easier when it comes to searching. Enter the ');
- Writeln(' data which consists of the objects name and the');
- Writeln(' location of it. If you are looking for it, type ');
- Writeln(' the correct name for the object, and you will ');
- Writeln(' get it''s location.');
- Writeln;
- Writeln('Clear memory: Clears the memory TOTALY! Nothing will be left');
- Writeln('~~~~~~~~~~~~~ in memory after this action takes place. Take');
- Writeln(' care!!!');
- Writeln;
- Writeln('Save & Load Memory: This option is quiet obvious. It saves the');
- Writeln('~~~~~~~~~~~~~~~~~~~ memory to the Floppy / Hard / Ram disk, and ');
- Writeln(' Recalls it back.');
- Writeln;
- Writeln('Status: Gives you a complete status of the memory.');
- Writeln('~~~~~~~');
- AFR;
- Writeln('Load Date: Looks for a date file on the disk, and replaces it');
- Writeln('~~~~~~~~~~ with the current program date.');
- Writeln;
- Writeln('Quit: Returns to the Gem Desktop, after you confirm it.');
- Writeln('~~~~~');
- Writeln;
- Writeln('Help: You just found what it is.');
- Writeln('~~~~~');
- AFR;
- Writeln('Information about data files:');
- Writeln('-----------------------------');
- Writeln('DATE FILES are 9 bytes long, and gathers the string value of');
- Writeln('~~~~~~~~~~ the date.');
- Writeln;
- Writeln('MEMORY FILES are up to 41600 bytes long, and gathers the total');
- Writeln('~~~~~~~~~~~~ memory as follows:');
- Writeln;
- Writeln(' 10 dates & 10 messages each ');
- Writeln(' up to 80 bytes = 20*80 = 1600');
- Writeln(' 100 places & 100 reasons, ');
- Writeln(' each up to 80 bytes = 200*80 = 16000');
- Writeln(' 100 information strings, each');
- Writeln(' up to 80 bytes = 100*80 = 8000');
- Writeln(' 100 objects & 100 locations,');
- Writeln(' each up to 80 bytes = 200*80 = 16000');
- Writeln;
- Writeln(' Total 41600');
- AFR;
- End;
-
-
- Begin
- Run:=true;
- Cdate:='6/17/87';
- Clear_Mem;
- CursOn;
- While Run=true Do
- Begin
- Text;
- Case Command Of
- 'q','Q':Begin
- Writeln;
- Write('Exit to the Gem Desktop (y/n) ?:');
- Readln(yesno);
- If (yesno='n') or (yesno='N') Then run:=true
- Else run:=false;
- End;
- 'r','R':Reset_Date;
- 'o','O':Load_Date;
- 'd','D':Imp_Dates;
- 'c','C':Clear_Mem;
- 'p','P':Places;
- 'i','I':Imp_data;
- 'k','K':My_Desk;
- 't','T':Status;
- 's','S':Save_Mem;
- 'l','L':Load_Mem;
- 'h','H':Help_Me;
- End;
- Check;
- End;
- End.
-